#include <stdio.h>
#include <math.h>

#define TRACE(x...) 
#define PRINT(x...) TRACE(printf(x))

double ax, ay;
double bx, by;
double cx, cy;
double dx, dy;
double ex, ey;
double fx, fy;
double area;
double unit;
double ux, uy, vx, vy;
double pal;
double hx, hy;
double gx, gy;

int main() {
	while (1) {
		scanf("%lf %lf %lf %lf %lf %lf %lf %lf %lf %lf %lf %lf", &ax, &ay, &bx, &by,
			&cx, &cy, &dx, &dy, &ex, &ey, &fx, &fy);
	
		if (!ax && !ay && !bx && !by && !cx &&  !cy && !dx && !dy && !ex && !ey && !fx && !fy) break;

		ux = ex-dx;
		uy = ey-dy;
		vx = fx-dx;
		vy = fy-dy;

		PRINT("u: %lf %lf, v: %lf %lf\n", ux, uy, vx, vy); 

		double area = fabs(ux*vy-uy*vx)/2;

		PRINT("area: %lf\n", area);

		ux = cx-ax;
		uy = cy-ay;
		
		unit = sqrt(ux*ux + uy*uy);
		ux/=unit; uy/=unit;

		PRINT("vec1: %lf %lf\n", ux, uy);

		vx = bx-ax;
		vy = by-ay;
		
		PRINT("vec2: %lf %lf\n", vx, vy);
	
		pal = fabs(ux*vy-vx*uy); 

		PRINT("pal: %lf\n", pal);

		hx=ax+ux*(area/pal); hy=ay+uy*(area/pal);	
		gx=bx+ux*(area/pal); gy=by+uy*(area/pal);
	
		printf("%.3lf %.3lf %.3lf %.3lf\n", gx, gy, hx, hy);
	}

	return 0;
}
